/*
 * 文件名：IOrderDetailInfoService.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：zhangshaohua
 * 修改时间：2016年4月28日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.service.mall;

import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.dmall.vo.OrderCount;
import com.zcsy.manage.model.dmall.vo.OrderData;
import com.zcsy.manage.model.mall.OrderDetailInfo;
import com.zcsy.manage.model.mall.OrderDetailInfoView;

/**
 * 
 * @Title: IOrderDetailInfoService.java
 * @Package： com.zcsy.manage.service.mall 
 * @Description: 订单详情服务层
 * @author zhangsh zsh3384027@gmail.com
 * @Copyright: 2016 武汉恒数利通技术有限公司 All rights reserved.
 * @date 2016年4月28日
 * @version 1.0
 * @see JDK1.8.0_45
 * @since
 */
public interface IOrderDetailInfoService {

	/**
	 * 
	 * @Description 生成订单详情
	 * @param orderDetailInfo
	 * @return 1:成功 0：失败
	 * @author zhangsh zsh3384027@gmail.com
	 * @date 2016年4月25日
	 * @see
	 */
	int insert(OrderDetailInfo orderDetailInfo);
	
	/**
	 * 
	 * @Description 修改订单详情
	 * @param orderInf
	 * @return 1:成功 0：失败
	 * @author zhangsh zsh3384027@gmail.com
	 * @date 2016年4月25日
	 * @see
	 */
	int update(OrderDetailInfo orderDetailInfo);
	
	/**
	 * 
	 * @Description 根据id获取订单详情信息
	 * @param id
	 * @return 
	 * @author zhangsh zsh3384027@gmail.com
	 * @date 2016年4月25日
	 * @see
	 */
	OrderDetailInfo selectByPrimaryKey(String id);
	
	/**
	 * 
	 * @Description 根据id删除订单详情信息
	 * @param id
	 * @return 1:成功 0：失败
	 * @author zhangsh zsh3384027@gmail.com
	 * @date 2016年4月25日
	 * @see
	 */
	int deleteByPrimaryKey(String id);
	
	/**
	 * 
	 * @Description 根据orderId删除订单详情信息
	 * @param orderId
	 * @return 
	 * @author zhangsh zsh3384027@gmail.com
	 * @date 2016年4月28日
	 * @see
	 */
	int deleteByOrderId(String orderId);
	
	/**
	 * 
	 * @Description <br>根据orderId获取订单详情信息
	 * @param orderId
	 * @return 
	 * @author zhangsh zsh3384027@gmail.com
	 * @date 2016年4月28日
	 * @see
	 */
	List<OrderDetailInfoView> getByOrderId(String orderId);
	
	/**
	 * @Description 通过订单id查询订单详情及商品信息<br>
	 * 
	 * @param orderId 订单信息
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年7月11日
	 * @see 
	 */
	List<OrderDetailInfo> getOrderDetailInfos(String orderId);
	
	List<OrderDetailInfo> getOrderDetailInfosByParentOrder(String orderId);
	
	 /**
     * @Method: getGoodsDetailByOrderId
     * @Description 根据订单id查找商品详情
     * @param orderId
     * @return 
     * @author liuziyu liuziyuwri@foxmail.com
     * @date 2016年7月26日
     * @see 
     */
    List<OrderDetailInfo> getGoodsDetailByOrderId(String orderId);
	
	/**
     * @Description 通过店铺id获取近7日或当月30日销量<br>
     * 
     * @param shopId 店铺id
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年7月25日
     * @see 
     */
    List<OrderData> getSalesAmountByShopId(Map map);
    
    /**
     * @Description 通过店铺id获取近7日或当月30日销量统计<br>
     * 
     * @param shopId 店铺id
     *        timeType 1:7日   2：30日
     * @return 7日或30日销量的AVG  SUM  MAX
     * @author yangfan 373188993@qq.com
     * @date 2016年7月25日
     * @see 
     */
    OrderCount getSalesAmountDataCount(Map map);
    
    /**
     * @Description 通过店铺id获取近7日或当月30日销售额<br>
     * 
     * @param shopId 店铺id
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年7月25日
     * @see 
     */
    List<OrderData> getSalesMoneyByShopId(Map map);
    
    /**
     * @Description 通过店铺id获取近7日或当月30日销售额统计<br>
     * 
     * @param shopId 店铺id
     *        timeType 1:7日   2：30日
     * @return 7日或30日销售额的AVG  SUM  MAX
     * @author yangfan 373188993@qq.com
     * @date 2016年7月25日
     * @see 
     */
    OrderCount getSalesMoneyDataCount(Map map);
    
    /**
     * @Description 通过店铺id获取近7日或当月30日订单量<br>
     * 
     * @param shopId 店铺id
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年7月25日
     * @see 
     */
    List<OrderData> getSalesOrderNumByShopId(Map map);
    
    /**
     * @Description 通过店铺id获取近7日或当月30日订单量统计<br>
     * 
     * @param shopId 店铺id
     *        timeType 1:7日   2：30日
     * @return 7日或30日订单量的AVG  SUM  MAX
     * @author yangfan 373188993@qq.com
     * @date 2016年7月25日
     * @see 
     */
    OrderCount getSalesOrderNumDataCount(Map map);
    
    /** 
     * @Title: getOrderDetailWhenFirst 
     * @Description: 获取母订单的订单商品
     * @param @param orderId
     * @param @return     
     * @return List<OrderDetailInfo>     
     * @throws 
     */
    public List<OrderDetailInfo> getOrderDetailWhenFirst(String orderId);
}
